package com.tbit.uqbike.object.pojo.vo;

import cn.hutool.core.util.DesensitizedUtil;
import com.tbit.uqbike.object.pojo.CouponUser;
import com.tbit.uqbike.object.pojo.RideLog;
import com.tbit.uqbike.object.pojo.UserMember;
import lombok.Data;


/**
 * UserVO
 *
 */
@Data
public class UserVO {
    /**
     * 用户id
     */
    private Integer userId;
    /**
     * 账户id
     */
    private Integer accountId;
    /**
     * 用户id
     */
    private Integer faceId;
    /**
     * 国家码
     */
    private String country;
    /**
     * 手机号码
     */
    private String phone;
    /**
     * 性别
     */
    private String sex;
    /**
     * 生日
     */
    private String birthDay;
    /**
     * 邮箱
     */
    private String email;
    /**
     * 押金状态 (0:未提交押金;1:已提交押金;2:押金退还中;3:芝麻信用;4:押金冻结;5:学生认证免押金)
     */
    private Integer depositState;
    /**
     * 押金金额
     */
    private Integer depositMoney;
    /**
     * 账户金额
     */
    private Integer money;
    /**
     * 注册时间
     */
    private String joinTime;
    /**
     * 备注
     */
    private String remark;
    /**
     * 头像地址
     */
    private String imageUrl;
    /**
     * 身份证号码
     */
    private String idNO;
    /**
     * 用户真实姓名
     */
    private String name;
    /**
     * 是否实名认证
     */
    private Boolean nameAuth;
    /**
     * 是否学生认证
     */
    private Boolean studentAuth;
    /**
     * 学生证编号
     */
    private String studentIdNO;
    /**
     * 是否特殊认证
     */
    private Boolean specialAuth;
    /**
     * 特殊认证编号
     */
    private String specialAuthNO;
    /**
     * 欠款金额
     */
    private int rideMoney;
    /**
     * 骑行状态 1:可骑行-未骑行 2:骑行中 3:不可骑行-欠款中 4:不可骑行-拉黑中
     */
    private int rideStatus;
    /**
     * 费用申诉已处理
     */
    private int feeAppealAlready;
    /**
     * 费用申诉总数
     */
    private int feeAppealAll;
    /**
     * 意见反馈已处理
     */
    private int suggestionAlready;
    /**
     * 意见反馈总数
     */
    private int suggestionAll;
    /**
     * 待开发票已处理
     */
    private int invoiceAlready;
    /**
     * 待开发票总数
     */
    private int invoiceAll;
    /**
     * 退押金申请已处理
     */
    private int depositAlready;
    /**
     * 退押金申请总数
     */
    private int depositAll;
    /**
     * 站点申请已处理
     */
    private int parkPointApplyAlready;
    /**
     * 站点申请总数
     */
    private int parkPointApplyAll;
    /**
     * 最近一笔骑行订单
     */
    private RideLog rideLog;
    /**
     * 是否拉黑
     */
    private Boolean isBlack;
    /**
     * 拉黑到期时间
     */
    private String blackTime;
    /**
     * 骑行分
     */
    private Integer ridingScore;
    /**
     * 骑行卡
     */
    private UserMember rideCard;
    /**
     * 会员卡
     */
    private UserMember vipCard;
    /**
     * 免押卡
     */
    private UserMember depositCard;
    /**
     * 优惠券
     */
    private CouponUser coupon;
    /**
     * 免押到期时间
     */
    private String expireTime;
    /**
     * 用户基本信息脱敏
     */
    public void desensitization() {
        //信息脱敏
        setName(DesensitizedUtil.chineseName(name));
        setIdNO(DesensitizedUtil.idCardNum(idNO, 1, 2));
        setBirthDay(DesensitizedUtil.password(birthDay));
        setEmail(DesensitizedUtil.email(email));
    }
}
